Visual Simultaneous Localization and Mapping (SLAM) systems can process the input of a single camera and continuously build up a three dimensional (3D) model (e.g., a SLAM map) of an environment as the camera moves in Six Degrees of Freedom (6DOF). Visual SLAM systems can simultaneously track the position and orientation (pose) of the camera with respect to the 3D model. Keyframe-based visual SLAM systems can process discretely selected frames from the incoming camera image stream or feed. Keyframe-based visual SLAM systems assume general camera motion and apply structure-from-motion techniques to create 3D feature maps.
Visual SLAM systems may require sufficient parallax induced by translational or general camera motion between keyframe pairs to triangulate 3D map features. Therefore, with respect to previously selected keyframes, selection algorithms may reject candidate frames with degenerate relative rotation-only camera motion. Rotation-only camera motion for unmapped regions can cause visual SLAM systems to stall due to the lack of newly selected keyframes. Camera tracking may ultimately fail due to map unavailability. Consequently, visual SLAM systems may be forced into a relocalization mode in order to resume tracking. Therefore, improved tracking and mapping techniques are desirable.